/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TelaProduto.java
 *
 * Created on 05/12/2010, 14:30:13
 */

package sysype;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author SERVIDOR
 */
public class TelaProduto extends javax.swing.JInternalFrame {

    /** Creates new form TelaProduto */
    public TelaProduto() {
        initComponents();
        cnx = new ConexaoMySQL();
        jtCodigo.setEditable(false);
        pesquisaProduto();
        //JOptionPane.showMessageDialog(null,"altura: "+jtProduto.getSize().height+" largura: "+jtProduto.getSize().width);

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jlNome = new javax.swing.JLabel();
        jlPrCom = new javax.swing.JLabel();
        jlPrVend = new javax.swing.JLabel();
        jlPrcLucro = new javax.swing.JLabel();
        jtNome = new javax.swing.JTextField();
        jtPrVend = new javax.swing.JTextField();
        jtQtdEstMin = new javax.swing.JTextField();
        jtPrcLucro = new javax.swing.JTextField();
        jtPrCom = new javax.swing.JTextField();
        jtQtdEst = new javax.swing.JTextField();
        jlQtdEst = new javax.swing.JLabel();
        jlRef = new javax.swing.JLabel();
        jlQtdEstMin = new javax.swing.JLabel();
        jtRef = new javax.swing.JTextField();
        jlDesc = new javax.swing.JLabel();
        jspDesc = new javax.swing.JScrollPane();
        jtaDesc = new javax.swing.JTextArea();
        jbSalvar = new javax.swing.JButton();
        jbExcluir = new javax.swing.JButton();
        jbNovo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jtPesquisa = new javax.swing.JTextField();
        jbEditar = new javax.swing.JButton();
        jspProduto = new javax.swing.JScrollPane();
        jtProduto = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        jtCodigo = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();

        setClosable(true);
        setIconifiable(true);
        setTitle("Cadastro de Produto");

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        jPanel1.setLayout(null);

        jlNome.setFont(new java.awt.Font("Arial", 0, 12));
        jlNome.setText("Nome do Produto:");
        jPanel1.add(jlNome);
        jlNome.setBounds(120, 450, 110, 22);

        jlPrCom.setFont(new java.awt.Font("Arial", 0, 12));
        jlPrCom.setText("Preço de Compra:");
        jPanel1.add(jlPrCom);
        jlPrCom.setBounds(120, 530, 100, 22);

        jlPrVend.setFont(new java.awt.Font("Arial", 0, 12));
        jlPrVend.setText("Preço de Venda:");
        jPanel1.add(jlPrVend);
        jlPrVend.setBounds(380, 530, 100, 22);

        jlPrcLucro.setFont(new java.awt.Font("Arial", 0, 12));
        jlPrcLucro.setText("Percentagem de Lucro:");
        jPanel1.add(jlPrcLucro);
        jlPrcLucro.setBounds(120, 570, 128, 22);

        jtNome.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtNome);
        jtNome.setBounds(250, 450, 350, 25);

        jtPrVend.setFont(new java.awt.Font("Arial", 0, 12));
        jtPrVend.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jtPrVendFocusLost(evt);
            }
        });
        jPanel1.add(jtPrVend);
        jtPrVend.setBounds(540, 530, 60, 25);

        jtQtdEstMin.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtQtdEstMin);
        jtQtdEstMin.setBounds(250, 610, 60, 25);

        jtPrcLucro.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtPrcLucro);
        jtPrcLucro.setBounds(250, 570, 60, 25);

        jtPrCom.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtPrCom);
        jtPrCom.setBounds(250, 530, 60, 25);

        jtQtdEst.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jPanel1.add(jtQtdEst);
        jtQtdEst.setBounds(540, 580, 60, 25);

        jlQtdEst.setFont(new java.awt.Font("Arial", 0, 12));
        jlQtdEst.setText("Quantidade de Estoque");
        jPanel1.add(jlQtdEst);
        jlQtdEst.setBounds(380, 580, 130, 22);

        jlRef.setFont(new java.awt.Font("Arial", 0, 12));
        jlRef.setText("Referencia");
        jPanel1.add(jlRef);
        jlRef.setBounds(120, 490, 80, 22);

        jlQtdEstMin.setFont(new java.awt.Font("Arial", 0, 12));
        jlQtdEstMin.setText("Estoque Minimo");
        jPanel1.add(jlQtdEstMin);
        jlQtdEstMin.setBounds(120, 610, 100, 22);

        jtRef.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtRef);
        jtRef.setBounds(250, 490, 170, 25);

        jlDesc.setFont(new java.awt.Font("Arial", 0, 12));
        jlDesc.setText("Descriçao:");
        jPanel1.add(jlDesc);
        jlDesc.setBounds(120, 660, 59, 22);

        jtaDesc.setColumns(20);
        jtaDesc.setFont(new java.awt.Font("Arial", 0, 12));
        jtaDesc.setRows(5);
        jspDesc.setViewportView(jtaDesc);

        jPanel1.add(jspDesc);
        jspDesc.setBounds(250, 660, 350, 81);

        jbSalvar.setText("Salvar");
        jbSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbSalvarActionPerformed(evt);
            }
        });
        jPanel1.add(jbSalvar);
        jbSalvar.setBounds(120, 350, 90, 30);

        jbExcluir.setText("Excluir");
        jbExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbExcluirActionPerformed(evt);
            }
        });
        jPanel1.add(jbExcluir);
        jbExcluir.setBounds(250, 350, 90, 30);

        jbNovo.setText("Novo");
        jbNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbNovoActionPerformed(evt);
            }
        });
        jPanel1.add(jbNovo);
        jbNovo.setBounds(380, 350, 90, 30);

        jLabel1.setFont(new java.awt.Font("Arial", 0, 12));
        jLabel1.setText("Nome do produto");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(160, 20, 110, 23);

        jtPesquisa.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jtPesquisaKeyReleased(evt);
            }
        });
        jPanel1.add(jtPesquisa);
        jtPesquisa.setBounds(310, 20, 240, 25);

        jbEditar.setText("Editar");
        jbEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbEditarActionPerformed(evt);
            }
        });
        jPanel1.add(jbEditar);
        jbEditar.setBounds(520, 350, 90, 30);

        jtProduto.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jtProduto.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Codigo", "Referencia", "Nome do Produto", "Estoque"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jtProduto.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_LAST_COLUMN);
        jtProduto.setGridColor(new java.awt.Color(255, 255, 255));
        jtProduto.setIntercellSpacing(new java.awt.Dimension(0, 0));
        jtProduto.setRowHeight(20);
        jtProduto.getTableHeader().setReorderingAllowed(false);
        jspProduto.setViewportView(jtProduto);
        jtProduto.getColumnModel().getColumn(0).setResizable(false);
        jtProduto.getColumnModel().getColumn(0).setPreferredWidth(1);
        jtProduto.getColumnModel().getColumn(1).setResizable(false);
        jtProduto.getColumnModel().getColumn(1).setPreferredWidth(7);
        jtProduto.getColumnModel().getColumn(2).setResizable(false);
        jtProduto.getColumnModel().getColumn(2).setPreferredWidth(10);
        jtProduto.getColumnModel().getColumn(3).setResizable(false);
        jtProduto.getColumnModel().getColumn(3).setPreferredWidth(3);

        jPanel1.add(jspProduto);
        jspProduto.setBounds(40, 50, 620, 220);

        jLabel2.setFont(new java.awt.Font("Arial", 0, 12));
        jLabel2.setText("Código");
        jPanel1.add(jLabel2);
        jLabel2.setBounds(120, 410, 100, 22);

        jtCodigo.setFont(new java.awt.Font("Arial", 0, 12));
        jPanel1.add(jtCodigo);
        jtCodigo.setBounds(250, 410, 60, 25);

        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);
        jButton1.setBounds(250, 300, 75, 23);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 709, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 762, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jbExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbExcluirActionPerformed
        Object obj = jtProduto.getValueAt(jtProduto.getSelectedRow(), 0);
        String codigo = String.valueOf(obj);
        cnx.Conexao();
        cnx.preencheDataSet("DELETE FROM produto WHERE id_produto = "+codigo,2);
        pesquisaProduto();
        cnx.fecharConexao();
        // TODO add your handling code here:
}//GEN-LAST:event_jbExcluirActionPerformed

    private void jbNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbNovoActionPerformed
        limpaCampos();
    }//GEN-LAST:event_jbNovoActionPerformed

    private void jbSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbSalvarActionPerformed
        cnx.Conexao();
        if(jtCodigo.getText().equals("")){
            cnx.preencheDataSet("INSERT INTO produto (id_produto ,ref_produto,nom_produto,desc_produto,prc_venda,prc_compra,perc_lucro,quantidade_estoque,quantidade_estoque_minimo) VALUES (NULL ,'"+jtRef.getText()+"','"+jtNome.getText()+"','"+jtaDesc.getText()+"',"+Float.parseFloat(jtPrVend.getText().replace(',', '.'))+","+Float.parseFloat(jtPrCom.getText().replace(',', '.'))+","+jtPrcLucro.getText()+","+jtQtdEst.getText()+","+jtQtdEstMin.getText()+")",2);
            JOptionPane.showMessageDialog(null,"Produto Cadastrado com sucesso");
        }else{
            JOptionPane.showMessageDialog(null,"UPDATE produto SET ref_produto = '"+jtRef.getText()+"',nom_produto = '"+jtNome.getText()+"',desc_produto = '"+jtaDesc.getText()+"',prc_venda = "+Float.parseFloat(jtPrVend.getText().replace(',', '.'))+",prc_compra ="+Float.parseFloat(jtPrCom.getText().replace(',', '.'))+",perc_lucro = "+jtPrcLucro.getText()+",quantidade_estoque = "+jtQtdEst.getText()+",quantidade_estoque_minimo = "+jtQtdEstMin.getText()+" WHERE id_produto ="+jtCodigo.getText());
            cnx.preencheDataSet("UPDATE produto SET ref_produto = '"+jtRef.getText()+"',nom_produto = '"+jtNome.getText()+"',desc_produto = '"+jtaDesc.getText()+"',prc_venda = "+Float.parseFloat(jtPrVend.getText().replace(',', '.'))+",prc_compra ="+Float.parseFloat(jtPrCom.getText().replace(',', '.'))+",perc_lucro = "+jtPrcLucro.getText()+",quantidade_estoque = "+jtQtdEst.getText()+",quantidade_estoque_minimo = "+jtQtdEstMin.getText()+" WHERE id_produto ="+jtCodigo.getText(),2);
        }        
        limpaCampos();
        pesquisaProduto();
        cnx.fecharConexao();
    }//GEN-LAST:event_jbSalvarActionPerformed

    private void jbEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbEditarActionPerformed
        cnx.Conexao();
        Object obj = jtProduto.getValueAt(jtProduto.getSelectedRow(), 0);
        String codigo = String.valueOf(obj);       
        ResultSet r = cnx.preencheDataSet("select * from produto where id_produto ="+codigo,1);
        try {
            r.next();
            jtCodigo.setText(r.getString("id_produto"));
            jtNome.setText(r.getString("nom_produto"));
            jtPrCom.setText(r.getString("prc_compra"));
            jtPrVend.setText(r.getString("prc_venda"));
            jtPrcLucro.setText(r.getString("perc_lucro"));
            jtQtdEst.setText(r.getString("quantidade_estoque"));
            jtRef.setText(r.getString("ref_produto"));
            jtQtdEstMin.setText(r.getString("quantidade_estoque_minimo"));
            jtaDesc.setText(r.getString("desc_produto"));
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }
        cnx.fecharConexao();

        // TODO add your handling code here:
    }//GEN-LAST:event_jbEditarActionPerformed

    private void jtPesquisaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtPesquisaKeyReleased
        //JOptionPane.showMessageDialog(null, "select * from produto where nom_produto like '%"+jtPesquisa.getText()+"%' limit 0,10" );
        pesquisaProduto();
        //jtProduto.setSize(jtProduto.getRowCount(),jtProduto.getSize().width);
    }//GEN-LAST:event_jtPesquisaKeyReleased

    private void jtPrVendFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jtPrVendFocusLost


      /*  if((!jtPrcLucro.getText().equals(""))&&(!jtPrCom.getText().equals(""))){
            int prcvend,prccom,percluc;
            prccom
            JOptionPane.showMessageDialog(null,Integer.toString(Integer.parseInt(jtPrCom.getText())*(1+Integer.parseInt(jtPrcLucro.getText())/100)));
            jtPrVend.setText(Integer.toString(Integer.parseInt(jtPrCom.getText())*(1+(Integer.parseInt(jtPrcLucro.getText()))/100)));

        }*/// TODO add your handling code here:)
    }//GEN-LAST:event_jtPrVendFocusLost

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        JOptionPane.showMessageDialog(null,"tela produto");
        Produto p = new Produto();
        cnx.Conexao();
        p.insereProduto(p,cnx);
        cnx.fecharConexao();
        /*        Rectangle d = jtProduto.getBounds();
        DefaultTableModel mod = (DefaultTableModel) jtProduto.getModel();
        int col = mod.getRowCount();
        col=col*10;
        JOptionPane.showMessageDialog(null,"posiçao x "+d.x+"posicao y "+d.y+" altura "+d.height+" largura:"+d.width+" col "+col);// TODO add your handling code here:
        d.height=col;
        jtProduto.setBounds(10,30,40,d.width);*/
    }//GEN-LAST:event_jButton1ActionPerformed
    void pesquisaProduto(){
        cnx.Conexao();
        ResultSet r;
        String codigo,nome,referencia,quantidadeEstoque;
        DefaultTableModel mod = (DefaultTableModel) jtProduto.getModel();
        mod.setNumRows(0);
        if(jtPesquisa.getText().equals("")){
             r = cnx.preencheDataSet("select * from produto limit 0,10",1);
            try {
                while (r.next()) {
                    codigo = r.getString("id_produto");
                    referencia = r.getString("ref_produto");
                    nome = r.getString("nom_produto");
                    quantidadeEstoque = r.getString("quantidade_estoque");
                    String[] array = {codigo,referencia,nome,quantidadeEstoque};
                    mod.addRow(array);
                    Dimension  d = jtProduto.getSize();
                    int col = mod.getRowCount();
                    d.height = col*16;
                    jtProduto.setSize(d);
                }
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            }
        }else{
             r = cnx.preencheDataSet("select * from produto where nom_produto like '%"+jtPesquisa.getText()+"%' limit 10"  , 1);
            try {
                while (r.next()) {
                    codigo = r.getString("id_produto");
                    referencia = r.getString("ref_produto");
                    nome = r.getString("nom_produto");
                    quantidadeEstoque = r.getString("quantidade_estoque");
                    String[] array = {codigo,referencia,nome,quantidadeEstoque};
                    mod.addRow(array);
                }
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            }
        }
        cnx.fecharConexao();// TO
    }
    private void limpaCampos(){
        jtNome.setText("");
        jtPrCom.setText("");
        jtPrVend.setText("");
        jtPrcLucro.setText("");
        jtQtdEst.setText("");
        jtRef.setText("");
        jtQtdEstMin.setText("");
        jtaDesc.setText("");
        jtCodigo.setText("");
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JButton jbEditar;
    private javax.swing.JButton jbExcluir;
    private javax.swing.JButton jbNovo;
    private javax.swing.JButton jbSalvar;
    private javax.swing.JLabel jlDesc;
    private javax.swing.JLabel jlNome;
    private javax.swing.JLabel jlPrCom;
    private javax.swing.JLabel jlPrVend;
    private javax.swing.JLabel jlPrcLucro;
    private javax.swing.JLabel jlQtdEst;
    private javax.swing.JLabel jlQtdEstMin;
    private javax.swing.JLabel jlRef;
    private javax.swing.JScrollPane jspDesc;
    private javax.swing.JScrollPane jspProduto;
    private javax.swing.JTextField jtCodigo;
    private javax.swing.JTextField jtNome;
    private javax.swing.JTextField jtPesquisa;
    private javax.swing.JTextField jtPrCom;
    private javax.swing.JTextField jtPrVend;
    private javax.swing.JTextField jtPrcLucro;
    private javax.swing.JTable jtProduto;
    private javax.swing.JTextField jtQtdEst;
    private javax.swing.JTextField jtQtdEstMin;
    private javax.swing.JTextField jtRef;
    private javax.swing.JTextArea jtaDesc;
    // End of variables declaration//GEN-END:variables
    ConexaoMySQL cnx;
    }

